/*******************************************************\
|* Author: Trevor Sundberg
\*******************************************************/

// Header protection
#pragma once
#ifndef SKUGO_VIEWPORT_HPP
#define SKUGO_VIEWPORT_HPP

// Includes
#include "SkugoDockablePlugin.hpp"
#include "SkugoEventHandler.hpp"

namespace Skugo
{
  // Forward declarations
  class DebugDrawEntity;

  // A viewport represents a viewing portal into the world
  // Debug drawing is a part of viewport
  class Console : public DockablePlugin
  {
  public:
    
    // The type of message we send or receieve.
    enum MessageType
    {
      WriteMessage,
      UserInput,
    };

    EventHandler<string> OnConsoleInput;
    
    // Constructor
    Console(Client* client, const string& displayName);
    
    // Plugin interface
    void OnReceive(const char* data, sizeType size) override;

    void Write(const string& text);
    void WriteLine(const string& text);
  };
}

// End header protection
#endif
